// The contents of this file are subject to the Mozilla Public License Version
// 1.1
//(the "License"); you may not use this file except in compliance with the
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
//
//Software distributed under the License is distributed on an "AS IS" basis,
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
//for the specific language governing rights and
//limitations under the License.
//
//The Original Code is "The Columba Project"
//
//The Initial Developers of the Original Code are Frederik Dietz and Timo
// Stich.
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
//
//All Rights Reserved.
package org.columba.mail.spam.rules;

import org.columba.mail.folder.IMailbox;


/**
 * Handcrafted rules which can be added to the spam filter engine.
 * <p>
 * See <a href="http://www.spamassassin.org/tests.html">spamassassin.org</a> for
 * many nice tests.
 * @author fdietz
 */
public interface Rule {

    /**
     * Get score of specific rule.
     * 
     * @param folder		selected folder
     * @param uid			selected message uid
     * @return				message score, meaning likelihood this message is spam
     * 						(0. - 1.0)
     * @throws Exception
     */
    float score(IMailbox folder, Object uid) throws Exception;
    
    String getName();
}
